#ifndef __ROUCH_H__
#define __ROUCH_H__

#include <stdio.h>
#include <dlfcn.h>  // 动态加载动态库的头文件：dlopen()、dlsym()
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <fcntl.h>
#include <stdbool.h>

#include <sys/stat.h>
#include <sys/wait.h>
#include <sys/types.h>
#include <sys/mman.h>
#include <linux/fb.h>
#include <sys/ioctl.h>
#include <linux/input.h> // 系统定义输入设备操作的API

/*---触摸屏可能的操作类型---*/
typedef enum {
    CLICK = 0,   // 点击 
    SLIDE_LEFT,  // 左滑
    SLIDE_RIGHT, //右滑
    SLIDE_DOWN, //下滑
    SLIDE_UP     //上滑  
}TouchScreenAction;

/*-----触摸屏的结构体-----*/
typedef struct TouchScreen{
    int fd;
    struct input_absinfo abs_x;//触摸屏的x轴信息
    struct input_absinfo abs_y;//触摸屏的y轴信息
}TouchScreen;

/*-------坐标结构-----*/
typedef struct Coordinate
{
    int x;
    int y;
    TouchScreenAction action;
}Coordinate;


/*-----触摸屏的初始化-----*/
extern void touchscreen_init(TouchScreen *ts);

/*-----触摸屏的反初始化-----*/
extern void touchscreen_uninit(TouchScreen *ts);

/*---按下响应(获取x和y的值,立即返回)---*/
extern void ts_press(Coordinate *coor,TouchScreen *ts);


/*-----松开响应(离开屏幕，返回)----*/
extern void ts_loosen(Coordinate *coor,TouchScreen *ts);

/*---------滑屏------------*/
extern void ts_slide_screen(Coordinate *coor,TouchScreen *ts);

#endif